package __interface

import "fmt"

type Color interface {
	A()
	B()
}

type Blue struct {
	Color // 将接口作为匿名字段，真正的实现在运行的时候才被注入
}

func (b *Blue) Point() {
	fmt.Println("blue point")
}

func (b *Blue) A() {
	fmt.Println("blue a")
}

func Demo() {
	b := Blue{}
	b.A()
	// 因为没有实现B，运行的时候才会报错
	b.B()
}
